《高性能網(wǎng)站建設指南》閱讀筆記_規(guī)則3- 添加Expires頭
發(fā)布時間:2013-11-22 瀏覽:445打印字號:大中小
使用Expires來設置瀏覽器緩存,就是到指定的時間為止一直訪問緩存中的內(nèi)容。另外在http1.1中引入了cache-control頭來克服Expires頭的限制,因為Expires頭使用一個特定時間,它要求服務器和客戶端的時鐘嚴格同步,過期時間需要經(jīng)常檢查,并且一旦未來這一天到了,還需要在服務器配置中提供一個新的日期。
Cache-control使用max-age指定指定組件被緩存多久,它以秒為單位定義了一個更新窗。如果從組件被請求開始過去的秒數(shù)少于max-age,瀏覽器就使用緩存版本。
如果你同時指定了Expires和cache-control頭,max-age指令將重寫Expires頭。
可以在頁面上設置(只適用于html等頁面,不適用于組件):
可以通過iis設置:
必須是本地計算機上 Administrators組的成員或者必須被委派了相應的權限,才能執(zhí)行下列步驟。作為安全性的優(yōu)質(zhì)操作,最好使用不屬于 Administrators組的帳戶登錄計算機,然后使用運行方式命令以管理員身份運行 IIS管理器
在命令提示符下,鍵入 runas /user:administrative_accountname “mmc%systemroot%\system32\inetsrv\iis.msc”。
IIS為不同的文件設置不同的過期頭
為靜態(tài)文件(js,css,image)設置客戶端緩存是前端優(yōu)化的重要法則之一,通過IIS為靜態(tài)文件設置過期頭(Expires headers)很方便,
1.打開IIS管理器;
2.點擊要設置的站點,在功能視圖中雙擊HTTP響應標頭,
3.然后點擊,打開對話框
但是這樣操作,web的整個站的所有的靜態(tài)文件的緩存時間都一樣,如果我們希望為不同的靜態(tài)文件添加不同的緩存時間,比如有些文件很久不改變希望緩存時間長些,有些希望緩存時間短些。
操作起來還是很簡單,下面以添加某一個JS文件的緩存時間為例:
1. 在IIS管理器下點擊該文件的文件夾并切換到內(nèi)容視圖
2. 選中要設置的js文件,如上圖的jquery-1.3.2.js,右鍵切換到功能視圖,這時看到的IIS管理臺內(nèi)容是
雙擊上圖的HTTP響應標頭就可以像為整個站點設置過期時間一樣的操作。
上面的操作最終還是生成web.config的配置,經(jīng)過上面的設置你會發(fā)現(xiàn)在Script文件夾下生成了一個web.config配置文件,打開發(fā)現(xiàn)內(nèi)容如下
這樣就明白了通過上面在IIS管理器的“繁瑣”的界面操作可以通過簡單的web.config中配置即可,比如要整個Script文件夾設置統(tǒng)一的過期日期,只用添加一個location節(jié)即可
注意:
1. Cache-Control 具有優(yōu)先權于Expires
2. 為了確保更新的組件在用戶的瀏覽器中也更新(而不是使用緩存中的),解決方案是:將所有需要更新的組件更改文件名。